package cn.topevery.garden.entity.vo.event;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.fastjson.annotation.JSONField;
import hw.topevery.framework.Utility;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 案件延时申请表 视图
 *
 * @author code-generate
 * @date 2020-12-01
 */
@Data
@ApiModel(value = "EventDelayApply 视图", description = "案件延时申请表 视图")
public class EventDelayApplyVO implements Serializable {
    /**
     * 申请延时ID
     */
    @ApiModelProperty(value = "申请延时ID")
    private String delayId;

    /**
     * 案件ID
     */
    @ApiModelProperty(value = "案件ID")
    private String evtId;

    /**
     * 案件案件号
     */
    @ApiModelProperty(value = "案件案件号")
    @Excel(name = "案件号", orderNum = "0")
    private String evtCode;

    /**
     * 所属标段名称
     */
    @ApiModelProperty(value = "所属标段名称")
    @Excel(name = "标段", orderNum = "1")
    private String sectionName;

    /**
     * 所属企业名称
     */
    @ApiModelProperty(value = "所属企业名称")
    @Excel(name = "标段", orderNum = "1")
    private String companyName;

    /**
     * 当前环节实例ID
     */
    @ApiModelProperty(value = "当前环节实例ID")
    private String actInstId;

    /**
     * 当前环节实例
     */
    @ApiModelProperty(value = "当前环节实例")
    private String delayActName;

    /**
     * 申请时间
     */
    @ApiModelProperty(value = "申请时间")
    @Excel(name = "申请时间", orderNum = "7", format = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime reqDate;

    /**
     * 申请人员ID
     */
    @ApiModelProperty(value = "申请人员ID")
    private String reqUserId;

    /**
     * 申请人名称
     */
    @ApiModelProperty(value = "申请人名称")
    @Excel(name = "申请人", orderNum = "6")
    private String reqUsername;

    /**
     * 申请人员部门ID
     */
    @ApiModelProperty(value = "申请人员部门ID")
    private String reqUserDepId;

    /**
     * 暂时放的冗余字段:0一般性处理，1特殊性处理，2工程性处理 ，20 自行估算时限，30 无时限
     */
    @ApiModelProperty(value = "暂时放的冗余字段:0一般性处理，1特殊性处理，2工程性处理 ，20 自行估算时限，30 无时限")
    private Integer reqType;

    /**
     * 申请处理时限
     */
    @ApiModelProperty(value = "申请处理时限")
    private Integer reqLimit;

    @ApiModelProperty(value = "申请处理时限")
    @Excel(name = "申请处理时限", orderNum = "3")
    private String reqLimitStr;

    /**
     * 案件原始处理时限
     */
    @ApiModelProperty(value = "案件原始处理时限")
    private Integer oldLimit;

    @ApiModelProperty(value = "案件原始处理时限")
    @Excel(name = "原始处理时限", orderNum = "2")
    private String oldLimitStr;

    /**
     * 案件新处理时限
     */
    @ApiModelProperty(value = "案件新处理时限")
    private Integer newLimit;

    @ApiModelProperty(value = "案件新处理时限")
    @Excel(name = "新处理时限", orderNum = "4")
    private String newLimitStr;

    /**
     * 案件处理时限预留
     */
    @ApiModelProperty(value = "案件处理时限预留")
    private Integer selfDefLimit;

    @ApiModelProperty(value = "案件处理时限预留")
    private String selfDefLimitStr;

    /**
     * 申请原因
     */
    @ApiModelProperty(value = "申请原因")
    @Excel(name = "申请原因", orderNum = "5")
    private String reqReason;

    /**
     * 暂时放的冗余字段:这里应该是 派发案件至申请人所在专业部门的 派遣员角色
     */
    @ApiModelProperty(value = "暂时放的冗余字段:这里应该是 派发案件至申请人所在专业部门的 派遣员角色")
    private String auditRoleId;

    /**
     * 审核日期
     */
    @ApiModelProperty(value = "审核日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime auditDate;

    /**
     * 审核人员ID
     */
    @ApiModelProperty(value = "审核人员ID")
    private String auditUserId;

    /**
     * 审核人员名称
     */
    @ApiModelProperty(value = "审核人员名称")
    private String auditUsername;


    /**
     * 暂时放的冗余字段:与c_req_type 相同
     */
    @ApiModelProperty(value = "暂时放的冗余字段:与c_req_type 相同")
    private Integer auditType;

    /**
     * 审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String auditOpinion;

    /**
     * 审核状态：0.未审核；1.审核通过；2.审核未通过;3.取消
     */
    @ApiModelProperty(value = "审核状态：0.未审核；1.审核通过；2.审核未通过;3.取消")
    private Integer isPass;

    public String getReqLimitStr() {
        reqLimitStr = Utility.GetTimeString(reqLimit);
        return reqLimitStr;
    }

    public String getSelfDefLimitStr() {
        selfDefLimitStr = Utility.GetTimeString(selfDefLimit);
        return selfDefLimitStr;
    }

    public void setReqLimitStr(String reqLimitStr) {
        this.reqLimitStr = reqLimitStr;
    }

    public String getOldLimitStr() {
        oldLimitStr = Utility.GetTimeString(oldLimit);
        return oldLimitStr;
    }

    public void setOldLimitStr(String oldLimitStr) {
        this.oldLimitStr = oldLimitStr;
    }

    public String getNewLimitStr() {
        newLimitStr = Utility.GetTimeString(newLimit);
        return newLimitStr;
    }

    public void setNewLimitStr(String newLimitStr) {
        this.newLimitStr = newLimitStr;
    }
}
